#ifndef __APP_POOL_H__
#define __APP_POOL_H__

#include <pthread.h>
#include <mqueue.h>
#include <stdlib.h>
#include "../thirdparty/log/log.h"

typedef int (*task_pointer)(void *);

typedef struct
{
    task_pointer task_func;
    void *arg;
} Task;

/**
 * @brief 线程池初始化
 * @param pool_size 线程池大小
 * @return int 0:成功 -1:失败
 */
int app_pool_init(int pool_size);

/**
 * @brief 关闭线程池
 */
void app_pool_close(void);

/**
 * @brief 注册任务到线程池
 * @param task_func 任务函数指针
 * @param arg 任务函数参数
 */
void app_pool_resigterTask(int (*task_func)(void *), void *arg);
#endif /* __APP_POOL_H__ */